home *** CD-ROM | disk | FTP | other *** search
- program DrBob42;
- {$APPTYPE CONSOLE}
- uses
- DrBobCGI, SysUtils, DB, SqlExpr;
-
- procedure DataSet2HTML(const DataSet: TDataSet);
- var
- fields: Integer;
- begin
- writeln('<table border=1>');
- DataSet.Open;
- write('<tr>');
- for fields:=0 to Pred(DataSet.FieldCount) do
- write('<td bgcolor=ffffff><b>',DataSet.Fields[fields].FieldName,'</td>');
- writeln('</tr>');
- DataSet.First;
- while not DataSet.Eof do
- begin
- write('<tr>');
- for fields:=0 to Pred(DataSet.FieldCount) do
- write('<td>',DataSet.Fields[fields].AsString,'</td>');
- writeln('</tr>');
- DataSet.Next
- end;
- writeln('</table>')
- end {DataSet2HTML};
-
- procedure Record2HTML(const DataSet: TDataSet);
- var
- fields: Integer;
- begin
- if not DataSet.Active then DataSet.Open;
- for fields:=0 to Pred(DataSet.FieldCount) do
- writeln('<b>',DataSet.Fields[fields].FieldName,':</b> ',
- DataSet.Fields[fields].Value,'<br>')
- end {Record2HTML};
-
- procedure NavigatorHTML(const DataSet: TDataSet; RecNo: Integer);
- begin
- if RecNo = 0 then RecNo := 1;
- if not DataSet.Active then DataSet.Open;
- write('<a href="',ScriptName,'?RecNo=1">First</a> | ');
- write('<a href="',ScriptName,'?RecNo=',Pred(RecNo),'">Prior</a> | ');
- write('<a href="',ScriptName,'?RecNo=',Succ(RecNo),'">Next</a> | ');
- write('<a href="',ScriptName,'?RecNo=-1">Last</a> | ');
- write('<a href="',ScriptName,'?RecNo=',RecNo,'">Refresh</a> ',
- '(',RecNo,')<br>')
- end {NavigatorHTML};
-
- procedure DBQuery2HTML(const DB, Query: String);
- var
- RecNo,i: Integer;
- DataSet: TSQLDataSet;
- SQLConnection1: TSQLConnection;
- begin
- SQLConnection1 := TSQLConnection.Create(nil);
- with SQLConnection1 do
- begin
- LoadParamsOnConnect := True;
- ConnectionName := DB;
- LoginPrompt := False;
- Connected := True;
- end;
- DataSet := TSQLDataSet.Create(nil);
- try
- DataSet.SQLConnection := SQLConnection1;
- DataSet.CommandText := Query;
- DataSet.Open;
- RecNo := StrToIntDef(Value('RecNo'),1);
- if RecNo = -1 then
- begin
- RecNo := 1;
- while not DataSet.Eof do
- begin
- Inc(RecNo);
- DataSet.Next
- end
- end
- else
- for i:=1 to Pred(RecNo) do DataSet.Next;
- if DataSet.Eof then // went past Eof, need to backtrack!
- begin
- Dec(RecNo); // one before Eof
- DataSet.First;
- for i:=1 to Pred(RecNo) do DataSet.Next
- end;
- NavigatorHTML(DataSet,RecNo);
- writeln('<hr>');
- Record2HTML(DataSet);
- writeln('<hr>');
- NavigatorHTML(DataSet,RecNo);
- writeln('<hr>');
- DataSet2HTML(DataSet);
- finally
- DataSet.Close;
- DataSet.Free;
- SQLConnection1.Free
- end
- end {DBQuery2HTML};
-
- begin
- writeln('content-type: text/html');
- writeln;
- writeln('<html>');
- writeln('<body bgcolor=ffffcc>');
- DBQuery2HTML('IBLocal','select * from customer');
- writeln('</body>');
- writeln('</html>')
- end.
-